package icu.d4peng.cloud.gateway.service;

import org.springframework.cloud.gateway.route.RouteDefinition;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * @author d4peng
 * @version 1.0.0
 * @date 2022-01-04 16:36
 * @description DynamicRouteService:动态路由服务
 */
public interface DynamicRouteService {
    /**
     * 路由
     *
     * @return 路由列表
     */
    Flux<RouteDefinition> routes();

    /**
     * 路由保存
     *
     * @param route 路由
     * @return 结果
     */
    Mono<Void> save(Mono<RouteDefinition> route);

    /**
     * 路由删除
     *
     * @param routeId 路由ID
     * @return 结果
     */
    Mono<Void> delete(Mono<String> routeId);

}
